package com.healthcarex.hip.saas.security.service;

import com.healthcarex.hip.saas.security.model.RoleWithResource;
import com.healthcarex.hip.saas.security.model.SysRole;

import java.util.List;

/**
 * @author chenpan
 * @ClassName: IRoleService
 * description:
 * @date 2018-04-02 16:20
 */

public interface IRoleService {

    /**
     * 根据用户名查询用户角色信息
     *
     * @param userName
     * @return
     */
    List<SysRole> findUserRole(String userName);

    /**
     * 查询所有角色
     *
     * @param role
     * @return
     */
    List<SysRole> findAllRole(SysRole role);

    /**
     * 查询角色信息-附带权限权限
     *
     * @param role
     * @return
     */
    List<RoleWithResource> findRoleWithResources(SysRole role);

    /**
     * 根据角色ID获取角色信息-附带权限信息
     *
     * @param roleId
     * @return
     */
    RoleWithResource findRoleWithResources(Integer roleId);

    /**
     * 根据角色编码查询角色
     *
     * @param roleCode
     * @return
     */
    SysRole findByCode(String roleCode);

    /**
     * 新增角色和角色权限
     *
     * @param role
     * @param resourceIds
     */
    void addRole(SysRole role, Integer[] resourceIds);

    /**
     * 更新角色和角色权限
     *
     * @param role
     * @param resourceIds
     */
    void updateRole(SysRole role, Integer[] resourceIds);

    /**
     * 删除角色和角色权限
     */
    void deleteRoles(String roleIds);
}
